home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / PROLOG / BP330 / !BinPro330 / library / linda < prev    next >
Text File  |  1994-08-07  |  939b  |  30 lines

  1. % out/1, rd/1, in/1 
  2. out(Mes):-object(Obj),message(Id),out(Obj,Id,Mes).
  3. rd(Mes):-object(Obj),message(Id),rd(Obj,Id,Mes).
  4. in(Mes):- object(Obj),message(Id),in(Obj,Id,Mes).
  5.  
  6. % out/2, rd/2, in/2
  7. out(Id,Mes):-object(Obj),out(Obj,Id,Mes).
  8. rd(Id,Mes):-object(Obj),rd(Obj,Id,Mes).
  9. in(Id,Mes):-object(Obj),in(Obj,Id,Mes).
  10.  
  11. % out/3, rd/3, in/3
  12. out(Obj,Id,_):-val(Obj,Id,_),!,fail.
  13. out(Obj,Id,Mes):-saved(Mes,Sent),let(Obj,Id,Sent).
  14. rd(Obj,Id,Mes):-val(Obj,Id,Mes).
  15. in(Obj,Id,Mes):-val(Obj,Id,Mes),rm(Obj,Id).
  16.  
  17. % eval/0, eval/1, eval/2
  18. eval:-object(Obj),message(Id),eval(Obj,Id).
  19. eval(Id):-object(O),eval(O,Id).
  20. eval(Obj,Id):-val(Obj,Id,(Answer:-Goal)),Goal,!,
  21.   saved(Answer,NewAnswer),
  22.   set(Obj,Id,NewAnswer).
  23.  
  24. % tools
  25. object(New):-var(New),!,val('$object','$object',New).
  26. object(New):-atomic(New),let('$object','$object',New).
  27.  
  28. message(New):-var(New),!,object(O),val(O,'$message',New).
  29. message(New):-atomic(New),object(O),let(O,'$message',New).
  30.